import request from "./request";
export async function getDict(type) {
    const ret = await request({
        url: `/admin/dict/type/${type}`,
        method: 'get',
        data: {}
    })
    if (ret.data.code === 0) {
        // return ret.data.data
        const ret1 = await request({
            url: '/system/syslanguage/sysDictItemTranslate',
            method: 'post',
            data: ret.data.data
        })
        if (ret1.data.code === 0) {
            return ret1.data.data
        } else {
            return new Error('异常')
        }
    } else {
        return new Error('异常')
    }
}

export function myfixedNum(num, ws) {
    var m = Math.pow(10, ws);
    return Math.floor(num * m) / m;
}
export function formatDecimal(str, num) {//str当前输入值，num是想要保留的小数位数
    str = String(str)
    if (!str.trim()) {
        return str
    }
    var len1 = str.substr(0, 1)
    var len2 = str.substr(1, 1)
    // 如果第一位是0，第二位不是点，就用数字把点替换掉
    if (str.length > 1 && len1 === 0 && len2 !== '.') {
        str = str.substr(1, 1)
    }
    // 第一位不能是.
    if (len1 === '.') {
        str = ''
    }
    // 限制只能输入一个小数点
    if (str.indexOf('.') !== -1) {
        var str_ = str.substr(str.indexOf('.') + 1)
        if (str_.indexOf('.') !== -1) {
            str = str.substr(0, str.indexOf('.') + str_.indexOf('.') + 1)
        }
    }
    // 正则替换
    str = str.replace(/[^\d^.]+/g, '') // 保留数字和小数点
    if (num || num === 0) {
        var rest = str.split('.')[1]
        if (rest && rest.length > num) {
            rest = rest.substr(0, num)
            str = str.split('.')[0] + '.' + rest
        }
    }
    console.log(str)
    return str
}
export function formatDate(date, fmt) {
    //获取年份
    if (/(y+)/.test(fmt)) {
        // 把数字变成字符串
        let dateY = date.getFullYear() + "";
        //RegExp.$1 在判断中出现过，且是括号括起来的，所以 RegExp.$1 就是 "yyyy"
        fmt = fmt.replace(RegExp.$1, dateY.substr(4 - RegExp.$1.length));
    }

    //获取其他
    let o = {
        "M+": date.getMonth() + 1,
        "d+": date.getDate(),
        "h+": date.getHours(),
        "m+": date.getMinutes(),
        "s+": date.getSeconds(),
    };
    for (const k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + "";
            fmt = fmt.replace(
                RegExp.$1,
                RegExp.$1.length == 1 ? str : (("00" + str).substr(str.length))
            );
        }
    }
    return fmt;
}


export function formatMoney(s, type = 2) {
    if (type != 11) {
        try {
            if (type == 10) {
                type = +(s.toString().split(".")[1].length);
            }
        } catch (error) {
            type = 2
        }
    } else {
        type = 0
    }

    let ret = (+s).toLocaleString(undefined, { maximumFractionDigits: type, minimumFractionDigits: type })
    if (ret <= 0) {
        return '--'
    } else {
        return ret
    }
}